大家应该都做过这么一个问题吧,将任意的十进制数转换成相应的二进制或者八进制或者十六进制,这个问题不难,可以用多种方法解决,今天,笔者就三种解法剖析方法其中对栈思想的应用。
先贴出代码:
1.递归操作
2.位操作
3.栈操作分析上述三种方法:第三种方法:栈操作是直接应用栈的技术进行操作,很容易看出来;第一种方法:利用的是递归函数,大家都知道,递归函数在进行递归的时候都必须有一个递归出口,否则就不能正常退出程序,当函数进行第一次递归的时候,由于没有到达出口条件,所以保留本层参数和结果,将其push(也就是所说的函数调用栈)就这样,一层一层的push,知直到到达出口条件,此时函数调用栈进行POP,也叫退层。利用这个原理,将二进制零幺代码逆序输出,这样就达到了预期的目的.第二种方法:这种方法,虽说没有利用栈,但是此方法的效率和直观性是显而易见的,直接进行的位操作,也就是在内存中直接就是对零幺的翻译,在加上移位操作,更加灵活,此法是我最喜欢用的,简介直观。就到这儿了,该去吃饭了。大家共同学习,共同进步,那里有不正确和不理解的,多多指点和留言探讨,谢谢合作。今天又遇到一个函数,可以实现转换_itoa(57,buffer,16); 第一个参数是要转换的数,第二个是地址,第三个是进制数